com.highdeal.pnr.tif
Class Transaction

java.lang.Object
  extended by com.highdeal.pnr.tif.Transaction
All Implemented Interfaces:
XMLMarshallable

public class Transaction
extends java.lang.Object
implements XMLMarshallable

This Java class represents a rated transaction computed by the SAP CC system during the dynamic pricing of a customer service use (service usage by an end customer, periodic fees, or one-off fees).

A rated transaction includes:

Transaction Details

Refer to transaction details for more information.

Transaction details can be filtered if the transaction is generated by a stateful operation and for a provider contract.

The transaction detail filtering is configured through the Response Item from the Charge Plan.

Additional Information

Consult the SAP CC Library (Application Help) from more information about the charging process.

See Also:
Purchase orders (in case of stateless rating services), Charged transaction sets (in case of stateful charging services)

XML API for HCI

The XML APIs specify the following XSD fragment:

XSD Fragment

<xs:element name="transac" type="TransactionType"/>

   <xs:complexType name="TransactionType">
    <xs:sequence>
      <xs:element name="detail" minOccurs="0" maxOccurs="unbounded">
        <xs:complexType>
          <xs:attribute name="name" type="xs:string"/>
          <xs:attribute name="type" type="xs:string"/>
          <xs:attribute name="value" type="xs:anySimpleType"/>
        </xs:complexType>
      </xs:element>
      <xs:element ref="notification" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:attribute name="amount" type="xs:string"/>
    <xs:attribute name="offerCode" type="xs:string"/>
    <xs:attribute name="chargePlanId" type="xs:string"/>
    <xs:attribute name="subscriptionCode" type="xs:string"/>
    <xs:attribute name="chargingContractId" type="xs:string"/>
    <xs:attribute name="chargeCode" type="xs:string"/>
    <xs:attribute name="dispatchCode1" type="xs:string"/>
    <xs:attribute name="dispatchCode2" type="xs:string"/>
    <xs:attribute name="dispatchCode3" type="xs:string"/>
    <xs:attribute name="origin" type="TransactionOrigin"/>
    <xs:attribute name="date" type="xs:dateTime"/>
    <xs:attribute name="label" type="xs:string"/>
    <xs:attribute name="relationshipType" type="TransacRelationShipTypeType" default="client"/>
    <xs:attribute name="operationType" type="TransacOperationTypeType" default="debit"/>
    <xs:attribute name="reservationUID" type="xs:long"/>
    <xs:attribute name="sessionID" type="xs:string"/>
   </xs:complexType>

 <xs:simpleType name="TransactionOrigin">
   <xs:restriction base="xs:string">
      <xs:enumeration value="usage"/>
      <xs:enumeration value="recurring"/>
      <xs:enumeration value="oneshot"/>
      <xs:enumeration value="accountEvent"/>
   </xs:restriction>
 </xs:simpleType>
<xs:simpleType name="TransacRelationShipTypeType">
   <xs:restriction base="xs:string">
     <xs:enumeration value="client"/>
     <xs:enumeration value="partner"/>
   </xs:restriction>
 </xs:simpleType>
<xs:simpleType name="TransacOperationTypeType">
   <xs:restriction base="xs:string">
     <xs:enumeration value="debit"/>
     <xs:enumeration value="credit"/>
   </xs:restriction>
 </xs:simpleType>


Field Summary
static int ACCOUNT_EVENT
          Constant value of the origin field indicating an account event refill transaction
static int CLIENT_RELATIONSHIP
          Constant value for a client type business relationship
static int CREDIT_OPERATION
          Constant value for a credit operation
static int DEBIT_OPERATION
          Constant value for a debit operation
static int ONESHOT
          Constant value of the origin field indicating a one-shot transaction
static int PARTNER_RELATIONSHIP
          Constant value for a partner type business relationship
static int RECURRING
          Constant value of the origin field indicating a recurring transaction
static int USAGE
          Constant value of the origin field indicating a usage transaction
 
Constructor Summary
Transaction()
          Builds an empty transaction
Transaction(Money amount, java.lang.String offerCode, java.lang.String subscriptionCode, java.lang.String chargeCode, java.lang.String dispatchCode1, java.lang.String dispatchCode2, java.lang.String dispatchCode3, int origin, DetailRecord detailRecord, java.util.Date date, java.lang.String label)
          Builds a full transaction with neither reservationUID nor sessionID
Transaction(Money amount, java.lang.String offerCode, java.lang.String subscriptionCode, java.lang.String chargeCode, java.lang.String dispatchCode1, java.lang.String dispatchCode2, java.lang.String dispatchCode3, int origin, DetailRecord detailRecord, java.util.Date date, java.lang.String label, java.lang.Long reservationUID, java.lang.String sessionID)
          Builds a full transaction
Transaction(Money amount, java.lang.String offerCode, java.lang.String subscriptionCode, java.lang.String chargeCode, java.lang.String dispatchCode1, java.lang.String dispatchCode2, java.lang.String dispatchCode3, int origin, DetailRecord detailRecord, java.util.Date date, java.lang.String label, java.lang.Long reservationUID, java.lang.String sessionID, java.lang.String internalSessionID, java.util.Vector<Notification> notifications)
           
Transaction(TransactionTemplateModel template)
          Builds an empty transaction with a template which will determine how to filter the transaction
 
Method Summary
 void addCharacterData(java.lang.String cData)
          Adds character data to the content element.
 void addChild(java.lang.String tagName, XMLMarshallable child)
          Adds a child to the object, the child representing the marshallable object which must be added to the element.
 Transaction duplicate()
          Duplicates the transaction
 Transaction duplicateWithoutDetailRecord()
          Duplicate the transaction without the detail record.
 Money getAmount()
          Gets the amount of the transaction generated by the SAP CC system
 java.lang.String getChargeCode()
          Returns the identification code of the charge
 java.lang.String getChargePlanId()
          Gets the identifier of the charge plan activated in the relating provider contract (in case of charging services based on provider contracts)
 java.lang.String getChargingContractId()
          Gets the identifier of the charging contract associated to this rated transaction (see provider contract)
 java.util.Date getDate()
          Gets the date
 DetailRecord getDetailRecord()
          Gets the detail record included in the transaction
 java.lang.String getDispatchCode1()
          Gets the dispatch code number 1
 java.lang.String getDispatchCode2()
          Gets the dispatch code number 2
 java.lang.String getDispatchCode3()
          Gets the dispatch code number 3
 java.lang.String getInternalSessionID()
          Gets the session internal id related to this transaction when it has been computed by session-based rating operations.
 java.lang.String getLabel()
          Returns the label
 Transaction getMasterTransaction()
          Gets the master transaction for this transaction
 java.util.Vector<Notification> getNotifications()
          Gets the list of triggered notifications
 java.lang.String getOfferCode()
          Gets the identification code of the related commercial offer if the transaction results from charging services based on subscriptions.
 int getOperationType()
          Gets the operation type of the transaction
 int getOrigin()
          Gets the origin event of the transaction; It may contain one of the following types: usage (service consumtpion), recurring (periodic fees), or one-shot (one-offf fees).
 int getRelationshipType()
          Gets the relationship type of the transaction
 java.lang.Long getReservationUID()
          Gets the reservation ID related to this transaction when it has been computed by a PreRateOp or PostRateOp.
 java.lang.String getSessionID()
          Gets the session identifier related to this transaction when it has been computed by session-based charging operations.
 java.lang.String getSubscriptionCode()
          Gets the identification code of the subscription associated to this rated transaction
 Transaction getTransaction(boolean isFilterTransaction)
          Gets the transaction according to the value of the option: isFilterTransaction
 TransactionTemplateModel getTransactionTemplate()
          Gets the transaction template which determines the filtering
 boolean isFree()
          Checks if transaction is free, i.e.
 void marshal(XMLOutputter output)
          Gives an XML representation of this object, including its children.
 void marshal(XMLOutputter output, java.lang.String tagName)
           
 void setAmount(Money amount)
          Sets the amount
 void setAttributes(XMLAttributes atts)
          Sets the attributes of the XML representation of the element being processed.
 void setChargeCode(java.lang.String code)
          Sets the charge code
 void setChargePlanId(java.lang.String chargePlanId)
          Sets the identifier of the charge plan
 void setChargingContractId(java.lang.String chargingContractId)
          Sets the identifier of the charging contract (charging view of a provider contract)
 void setDate(java.util.Date date)
          Sets the date
 void setDetailRecord(DetailRecord record)
          Sets the detail record
 void setDispatchCode1(java.lang.String code)
          Sets the dispatch code number 1
 void setDispatchCode2(java.lang.String code)
          Sets the dispatch code number 2
 void setDispatchCode3(java.lang.String code)
          Sets the dispatch code number 3
 void setInternalSessionID(java.lang.String internalSessionID)
          Sets the session internal id related to this transaction when it has been computed by session-based rating operations.
 void setLabel(java.lang.String label)
          Sets the label
 void setMasterTransaction(Transaction masterTransaction)
          Sets the master transaction for this transaction
 void setNotifications(java.util.Vector<Notification> notifications)
          Sets the list of triggered notifications
 void setOfferCode(java.lang.String code)
          Sets the identification code of the offer
 void setOperationType(int type)
          Sets the operation type for the transaction
 void setOrigin(int origin)
          Sets the origin
 void setRelationshipType(int relationshipType)
          Sets the relationship type of the transaction
 void setReservationUID(java.lang.Long reservationUID)
          Sets the reservation ID related to this transaction when it has been computed by a PreRateOp or PostRateOp operation request.
 void setSessionID(java.lang.String sessionID)
          Sets the session ID related to this transaction when it has been computed by session-based charging operations.
 void setSubscriptionCode(java.lang.String code)
          Sets the subscription code
 java.lang.String toString()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

USAGE

public static final int USAGE
Constant value of the origin field indicating a usage transaction

See Also:
Constant Field Values

RECURRING

public static final int RECURRING
Constant value of the origin field indicating a recurring transaction

See Also:
Constant Field Values

ONESHOT

public static final int ONESHOT
Constant value of the origin field indicating a one-shot transaction

See Also:
Constant Field Values

ACCOUNT_EVENT

public static final int ACCOUNT_EVENT
Constant value of the origin field indicating an account event refill transaction

See Also:
Constant Field Values

CLIENT_RELATIONSHIP

public static final int CLIENT_RELATIONSHIP
Constant value for a client type business relationship

See Also:
Constant Field Values

PARTNER_RELATIONSHIP

public static final int PARTNER_RELATIONSHIP
Constant value for a partner type business relationship

See Also:
Constant Field Values

DEBIT_OPERATION

public static final int DEBIT_OPERATION
Constant value for a debit operation

See Also:
Constant Field Values

CREDIT_OPERATION

public static final int CREDIT_OPERATION
Constant value for a credit operation

See Also:
Constant Field Values
Constructor Detail

Transaction

public Transaction()
Builds an empty transaction


Transaction

public Transaction(TransactionTemplateModel template)
Builds an empty transaction with a template which will determine how to filter the transaction

Parameters:
template - The manner to filter transaction

Transaction

public Transaction(Money amount,
                   java.lang.String offerCode,
                   java.lang.String subscriptionCode,
                   java.lang.String chargeCode,
                   java.lang.String dispatchCode1,
                   java.lang.String dispatchCode2,
                   java.lang.String dispatchCode3,
                   int origin,
                   DetailRecord detailRecord,
                   java.util.Date date,
                   java.lang.String label)
Builds a full transaction with neither reservationUID nor sessionID

Parameters:
amount -
offerCode -
subscriptionCode -
chargeCode -
dispatchCode1 -
dispatchCode2 -
dispatchCode3 -
origin -
detailRecord -
date -
label -

Transaction

public Transaction(Money amount,
                   java.lang.String offerCode,
                   java.lang.String subscriptionCode,
                   java.lang.String chargeCode,
                   java.lang.String dispatchCode1,
                   java.lang.String dispatchCode2,
                   java.lang.String dispatchCode3,
                   int origin,
                   DetailRecord detailRecord,
                   java.util.Date date,
                   java.lang.String label,
                   java.lang.Long reservationUID,
                   java.lang.String sessionID)
Builds a full transaction

Parameters:
amount -
offerCode -
subscriptionCode -
chargeCode -
dispatchCode1 -
dispatchCode2 -
dispatchCode3 -
origin -
detailRecord -
date -
label -
reservationUID -
sessionID -

Transaction

public Transaction(Money amount,
                   java.lang.String offerCode,
                   java.lang.String subscriptionCode,
                   java.lang.String chargeCode,
                   java.lang.String dispatchCode1,
                   java.lang.String dispatchCode2,
                   java.lang.String dispatchCode3,
                   int origin,
                   DetailRecord detailRecord,
                   java.util.Date date,
                   java.lang.String label,
                   java.lang.Long reservationUID,
                   java.lang.String sessionID,
                   java.lang.String internalSessionID,
                   java.util.Vector<Notification> notifications)
Method Detail

getTransaction

public Transaction getTransaction(boolean isFilterTransaction)
Gets the transaction according to the value of the option: isFilterTransaction

Parameters:
isFilterTransaction - true if the returned transaction must be filtered, false otherwise
Returns:
The transaction filtered or not

duplicate

public final Transaction duplicate()
Duplicates the transaction

Returns:
The duplicated transaction

duplicateWithoutDetailRecord

public final Transaction duplicateWithoutDetailRecord()
Duplicate the transaction without the detail record.

Returns:
the duplicated transaction

getAmount

public Money getAmount()
Gets the amount of the transaction generated by the SAP CC system

Returns:
The amount

setAmount

public void setAmount(Money amount)
Sets the amount

Parameters:
amount - The amount to set

isFree

public boolean isFree()
Checks if transaction is free, i.e. if the amount is null.

Returns:
true if the transaction is free, false otherwise

getOfferCode

public java.lang.String getOfferCode()
Gets the identification code of the related commercial offer if the transaction results from charging services based on subscriptions.

Returns:
The offer code

setOfferCode

public void setOfferCode(java.lang.String code)
Sets the identification code of the offer

Parameters:
code - The transaction offer code

getChargePlanId

public java.lang.String getChargePlanId()
Gets the identifier of the charge plan activated in the relating provider contract (in case of charging services based on provider contracts)

Returns:
The identifier of the charge plan

setChargePlanId

public void setChargePlanId(java.lang.String chargePlanId)
Sets the identifier of the charge plan

Parameters:
chargePlanId - The identifier of the charge plan

getSubscriptionCode

public java.lang.String getSubscriptionCode()
Gets the identification code of the subscription associated to this rated transaction

Returns:
The subscription identification code

setSubscriptionCode

public void setSubscriptionCode(java.lang.String code)
Sets the subscription code

Parameters:
code - The subscription code

getChargingContractId

public java.lang.String getChargingContractId()
Gets the identifier of the charging contract associated to this rated transaction (see provider contract)

Returns:
The identifier of the charging contract

setChargingContractId

public void setChargingContractId(java.lang.String chargingContractId)
Sets the identifier of the charging contract (charging view of a provider contract)

Parameters:
chargingContractId - The identifier of the charging contract

getChargeCode

public java.lang.String getChargeCode()
Returns the identification code of the charge

Returns:
The charge code

setChargeCode

public void setChargeCode(java.lang.String code)
Sets the charge code

Parameters:
code - The charge code

getDispatchCode1

public java.lang.String getDispatchCode1()
Gets the dispatch code number 1

Returns:
The first dispatch code

setDispatchCode1

public void setDispatchCode1(java.lang.String code)
Sets the dispatch code number 1

Parameters:
code - The dispatch code 1

getDispatchCode2

public java.lang.String getDispatchCode2()
Gets the dispatch code number 2

Returns:
The second dispatch code

setDispatchCode2

public void setDispatchCode2(java.lang.String code)
Sets the dispatch code number 2

Parameters:
code - The dispatch code 2

getDispatchCode3

public java.lang.String getDispatchCode3()
Gets the dispatch code number 3

Returns:
The third dispatch code

setDispatchCode3

public void setDispatchCode3(java.lang.String code)
Sets the dispatch code number 3

Parameters:
code - The dispatch code 3

getOrigin

public int getOrigin()
Gets the origin event of the transaction; It may contain one of the following types: usage (service consumtpion), recurring (periodic fees), or one-shot (one-offf fees).

Returns:
The origin of the transaction

setOrigin

public void setOrigin(int origin)
Sets the origin

Parameters:
origin - The transaction origin

getDetailRecord

public DetailRecord getDetailRecord()
Gets the detail record included in the transaction

Returns:
The detail record

setDetailRecord

public void setDetailRecord(DetailRecord record)
Sets the detail record

Parameters:
record - The transaction detail record

getDate

public java.util.Date getDate()
Gets the date

Returns:
The date

setDate

public void setDate(java.util.Date date)
Sets the date

Parameters:
date - The transaction date

getLabel

public java.lang.String getLabel()
Returns the label

Returns:
The label

setLabel

public void setLabel(java.lang.String label)
Sets the label

Parameters:
label - The transaction label

getTransactionTemplate

public TransactionTemplateModel getTransactionTemplate()
Gets the transaction template which determines the filtering

Returns:
template The manner to filter transaction

getRelationshipType

public int getRelationshipType()
Gets the relationship type of the transaction

Returns:
The value of relationship type
See Also:
CLIENT_RELATIONSHIP, PARTNER_RELATIONSHIP

setRelationshipType

public void setRelationshipType(int relationshipType)
Sets the relationship type of the transaction

Parameters:
relationshipType - The value to assign to the relationship type
See Also:
CLIENT_RELATIONSHIP, PARTNER_RELATIONSHIP

getOperationType

public int getOperationType()
Gets the operation type of the transaction

Returns:
The value of operation type
See Also:
DEBIT_OPERATION, CREDIT_OPERATION

setOperationType

public void setOperationType(int type)
Sets the operation type for the transaction

Parameters:
type - The value to assign to operation type
See Also:
DEBIT_OPERATION, CREDIT_OPERATION

getReservationUID

public java.lang.Long getReservationUID()
Gets the reservation ID related to this transaction when it has been computed by a PreRateOp or PostRateOp.

Returns:
The reservation ID related to this transaction

setReservationUID

public void setReservationUID(java.lang.Long reservationUID)
Sets the reservation ID related to this transaction when it has been computed by a PreRateOp or PostRateOp operation request.

Parameters:
reservationUID - The reservation ID related to this transaction

getSessionID

public java.lang.String getSessionID()
Gets the session identifier related to this transaction when it has been computed by session-based charging operations.

Returns:
The session ID related to this transaction

setSessionID

public void setSessionID(java.lang.String sessionID)
Sets the session ID related to this transaction when it has been computed by session-based charging operations.

Parameters:
sessionID - The session ID related to this transaction

getInternalSessionID

public java.lang.String getInternalSessionID()
Gets the session internal id related to this transaction when it has been computed by session-based rating operations.

Returns:
the session internal id related to this transaction

setInternalSessionID

public void setInternalSessionID(java.lang.String internalSessionID)
Sets the session internal id related to this transaction when it has been computed by session-based rating operations.

Parameters:
internalSessionID - the session internal id related to this transaction

getNotifications

public java.util.Vector<Notification> getNotifications()
Gets the list of triggered notifications

Returns:
The list of notifications triggered and included in this resulting transaction by the SAP CC system

setNotifications

public void setNotifications(java.util.Vector<Notification> notifications)
Sets the list of triggered notifications

Parameters:
notifications - The list of triggered notifications

getMasterTransaction

public Transaction getMasterTransaction()
Gets the master transaction for this transaction

Returns:
The master transaction of this transaction if it is a dependent transaction, null otherwise

setMasterTransaction

public void setMasterTransaction(Transaction masterTransaction)
Sets the master transaction for this transaction

Parameters:
masterTransaction - The master transaction of this transaction

addCharacterData

public void addCharacterData(java.lang.String cData)
Description copied from interface: XMLMarshallable
Adds character data to the content element.

Specified by:
addCharacterData in interface XMLMarshallable
Parameters:
cData - The character data to be added

setAttributes

public void setAttributes(XMLAttributes atts)
Description copied from interface: XMLMarshallable
Sets the attributes of the XML representation of the element being processed.

Specified by:
setAttributes in interface XMLMarshallable
Parameters:
atts - The XML attributes of the current element

addChild

public void addChild(java.lang.String tagName,
                     XMLMarshallable child)
Description copied from interface: XMLMarshallable
Adds a child to the object, the child representing the marshallable object which must be added to the element.

Specified by:
addChild in interface XMLMarshallable
Parameters:
tagName - The name of tag for the child
child - The child to be added

marshal

public void marshal(XMLOutputter output)
Description copied from interface: XMLMarshallable
Gives an XML representation of this object, including its children.

Specified by:
marshal in interface XMLMarshallable
Parameters:
output - The XML output to marshal the object into

marshal

public void marshal(XMLOutputter output,
                    java.lang.String tagName)

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object

Document Published: October 2015 (SAP CC 4.0 SP10 and Later)